perm filename READER[LSP,JRA] blob
sn#185983 filedate 1975-11-13 generic text, type T, neo UTF8
(DE READ*()
(PROG()
(SETQ J (RATOM*))
(COND((OR(IS_RPAR J)(IS_DOT J))(ERR (PRINT @FOO1)))
((IS_LPAR J) (SETQ Z (CONS NIL 1))
(RPLACA Z(CONS NIL Z))
(SETQ CP(CAR Z))
(GO HEAD))
((ATOM J) (RETURN J))
)
HEAD
(SETQ J (RATOM*))
(COND((OR(IS_DOT J)(IS_RPAR J))(ERR (PRINT @FOO3)) )
((IS_LPAR J)(RPLACD Z(ADD1 (CDR Z)))
(RPLACA CP(CONS NIL CP))
(SETQ CP(CAR CP))
(GO HEAD))
((ATOM J)(RPLACA CP J)(GO TAIL))
)
TAIL
(SETQ J (RATOM* ))
(COND
((IS_RPAR J) (RPLACD Z(SUB1 (CDR Z)))
(COND((EQ Z CP)(GO CHECKEND1))
(T (SETQ TEMP(CDR CP))
(RPLACD CP NIL)
(SETQ CP TEMP)
(GO CHECKEND))))
((IS_LPAR J) (RPLACD Z(ADD1 (CDR Z)))
(RPLACD CP(CONS NIL (CDR CP)))
(SETQ CP(CADR CP))
(GO HEAD))
((IS_DOT J) (GO DOT))
((ATOM J) (RPLACD CP(CONS J (CDR CP)))
(SETQ CP(CDR CP))
(GO CHECKEND))
)
DOT
(SETQ J (RATOM*))
(COND
((OR(IS_DOT J)(IS_RPAR J)) (ERR(PRINT @FOO4)))
((IS_LPAR J) (RPLACD Z(ADD1 (CDR Z)))
(RPLACD CP(CONS NIL (CDR CP)))
(GO HEAD))
((ATOM J) (SETQ TEMP(CDR CP))
(RPLACD CP J)
(SETQ CP TEMP)
(GO CHECKEND))
)
CHECKEND
(COND
((EQ Z CP) (GO CHECKEND1))
(T (GO TAIL))
)
CHECKEND1
(SETQ TEMP (CDR CP))
END2
(COND
((ZEROP TEMP)(RETURN (CAR CP))))
(SETQ J (RATOM*))
(COND((IS_RPAR J)(SETQ TEMP(SUB1 TEMP))(GO END2))
(T(ERR (PRINT @FOO5)))
)
))
)))))
(DE RATOM*()(READ))
(DE IS_LPAR(J)(EQ J @/())
(DE IS_RPAR(J)(EQ J @/)))
(DE IS_DOT(J)(EQ J @/.))